// 如何在TS中给数组添加约束
// 定义一个数组，只能包含 数字

let arr1: number[] = [1, 2];
// arr1 = [3,4, 'aba', true, {}]

let arr2: string[] = ['a', 'b'];

let arr3: boolean[] = [true, false];

let arr4: null[] = [null, null];

// 第二种写法
let arr5: Array<number> = [1, 2, 3];
let arr6: Array<string> = ['c', 'd'];

// 注意点,声明数组的时候，一定要指定类型，否则就是一个长度为0空数组常量。
let arr7: [] = [];
// arr7 = [0]

// 联合类型操作符 | 表示联合多个类型
let numAndStrArray: (number | string)[] = ['a', 1];
numAndStrArray = [1, 2, 3, 'ab'];
let numAndStr: number | string = 1;
numAndStr = 'a';
// numAndStr = {}
// numAndStr = true
let numAndStrArray2: Array<number | string> = ['a', 1];

// 问题：该类型的含义？
let arr: number | string[] = 1;
arr = ['a', 'b'];
// arr = [1,2]
// arr = 'abc'
